The field of this invention is machines for the purpose of moving an object along a desired path. More specifically, the field is motion controllers in closed loop systems including mechanical motion control and non-mechanical processes. An object may be a tool head and the path may be a machining path in any number of axes. For example, in a typical 3D printer, each incremental layer is built up by driving a print head in a vector pattern in a 2D plane. Equivalent to driving a tool head over a fixed work piece, the work piece may be driven under a fixed tool head.
Prior art uses a sequence of move instructions, often in a readable text and numeric format, such as G-code, where each move instruction is either executed directly by the hardware of the machine, or is broken into smaller steps by a controller, and those steps are then used to output to drive mechanisms. Motors may be steppers or servos, driven by pulses, micro-steps, pulse-width-modulation (PWM), or analog current or voltage waveforms. Except for the final motor control outputs, all data processing from prior to G-codes may be done in advance, in non-real-time. Prior art computes desired position or velocity waypoints for the controlled system.
Prior art includes the use of Proportional-Integral-Differential (PID) controllers.
The breakdown necessary to convert move instructions into the necessary lower-level motor control outputs may be called a “motion engine,” referring both to the method and the machine that executes the method steps. The computational requirements are typically high, requiring both high computational accuracy and high-speed processing.
In addition, the prior art computational sequence (the data processing steps) from move instructions, through a computational “motion engine” is an open-loop sequence. That is, the computational sequence does not take into account any actual, measured real-time position of the tool head (or other driven object), or other parameters of the system and then use that information to dynamically change the output of either the motion engine or the motor control outputs.
Prior art may then use an open loop system from the motion engine to the actual motor. Examples include steps (including micro-steps) to a stepper motor, or voltage or current to servomotor. Modulation such as PWM, or micro-stepping does not change the topology of open loop. Primitive closed loop control at the motor may include detection of missed steps in a stepper motor, or measurement of step time. A closed loop motor control may measure position to maintain a desired position command from the motion engine, or may measure velocity to maintain a desired velocity from the motion engine.
Some prior art does use feedback from the tool head or work piece as input to the motion controller. However, such systems tend to be slow due to the need for stability in the control loop and the relatively long delay between motion commands and the actual tool head position. This is a known weakness of PID controllers with rapidly changing inputs. Also, such feedback systems are complex, requiring very-high precision measurement directly at the tool head. Machine rigidity requirements typically make such machines large and expensive.
Yet another weakness of prior art is the use of only a single scalar (such as position) as the target to achieve in the feedback loop.
Yet another weakness of prior art feedback methods and devices and they have “memory” of the prior operation or state of the system under control. For time-varying inputs, such “memory” may produce large errors or slow settling time. For example, the I (integration) term in PID controller is by its very definition, “memory.”
Yet another weakness of prior art is that methods such as PID do not perform well when configured as separate feedback loops on non-orthogonal axes. For example, motion on one axis may affect motion on another axis, appearing as “drift,” “offset” or other error. Attempting to compensate for such errors is both slow and then, later, when the other axis is in some other motion, that compensation now produces an error.
Some prior art considers jerk in the form of a binary or three-valued number, such as a “bang-bang” controller.
Yet another weakness of prior art is not taking advantage of known system velocity and acceleration in generating feedback. While some controllers, such as PID controllers, “compute” a value similar to velocity, for example by use of the I (integral) term, this value is computed, rather than a measure of actual, real-time velocity, which may result in errors, noise, stability problems and slow response to system changes.
While we refer to mechanical systems as scenarios, practice and embodiments, claimed breadth includes non-mechanical systems including industrial process and non-industrial processes, including applications in camera control, lighting control, and dynamic biological systems.